#! coding=utf-8
""" 
Цей файл намагається створити словник транслітерації 
власних імен людей, на основі словника інтервік, 
тобто розділяючи імена і прізвища на окремі елементи. 
"""

import filedict
import freebase
from freebase.api.session import MetawebError
from translatesegment import upper1
import re

not_have_digits_re = re.compile("^\D+$")
def has_digit(s):
	return not not_have_digits_re.match(s)

iwikis = filedict.FileDict("dictionaries/iwikis")

personquery = {
	"key":[{"namespace":"/wikipedia/en", "value":None}],
	"type":[]
}

def is_person(article_name):
	if article_name.find(":")>-1: 
		return False
	personquery["key"][0]["value"]=upper1(article_name.replace(" ","_") )
	# Not shure that this is real transformation name -> link
	try:
		res = freebase.mqlread(personquery)
	except MetawebError:
		print "Metaweb error",
		return False
	if res:
		return "/people/person" in res["type"]
	else:
		return False

personlist = filedict.FileDict("dictionaries/personlist")
'''
N = len(iwikis)
i = 0
for article_en in iwikis.keys():
	i+=1
	print "%d/%d:" % (i,N),article_en,
	p = is_person(article_en)
	print
	if p: 
		print "^"*20
		personlist[article_en]=True
'''
if __name__ == "__main__":
	i = 0
	for p in personlist.keys():
		i+=1
		if i<990: continue
		if i>1000: break
		print "|-"
		print "| [[:en:%s|]] || [[%s]]" % (p,iwikis[p])
